package models

import (
	"time"

	"gorm.io/gorm"
)

// 永远也不要管表的id，而是表的其他唯一标识字段

// MedicalRecord 存储病历记录
// 病历表的唯一标识字段是病历编码
type MedicalRecord struct {
	gorm.Model
	MedicalRecordId uint `gorm:"primary_key;auto_increment;not null" json:"medical_record_id"` // 病历ID

	MedicalRecordCode string `gorm:"not null;unique" json:"medical_record_code"` // 病历编码
	// 外键关联患者表的ID
	PatientID uint `gorm:"not null" json:"patient_id"` // 患者ID
	// 外键关联医生表的ID
	DoctorID            uint      `gorm:"not null" json:"doctor_id"`                                          // 医生ID
	MedicalRecordNumber string    `gorm:"type:varchar(50);not null;uniqueIndex" json:"medical_record_number"` // 病历号
	ChiefComplaint      string    `gorm:"type:text" json:"chief_complaint"`                                   // 主诉
	Diagnosis           string    `gorm:"type:text" json:"diagnosis"`                                         // 诊断结果
	TreatmentPlan       string    `gorm:"type:text" json:"treatment_plan"`                                    // 治疗方案
	Medications         string    `gorm:"type:text" json:"medications"`                                       // 药物及用法
	RecordDate          time.Time `gorm:"type:timestamp;not null" json:"record_date"`                         // 病历记录时间
	Status              string    `gorm:"type:varchar(50)" json:"status"`                                     // 病历状态
}
